Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2007
Тип роботи:
Лабораторна робота
Предмет:
Математика
Група:
ПМ-31

Частина тексту файла

Міністерствто освіти і науки України Національний університет “Львівська політехніка” Кафедра прикладної математики Звіт Лабораторна робота №1: Скінченні автомати Тема : розглянути підмножину мови С,у якій ідентифікатор(довжина – не більше 12 символів),іілі константи(довжина – не більше 8 символів), які використовуються в операторах опису (типи змінних - float, int),оператори присвоєння,умовні оператори( довга форма, умова - одна операція порівняння або декілька порівнянь, об’єднаних за допомогою логічних операцій). Код програми : # include <iostream.h> # include <iomanip.h> # include <conio.h> # include <stdlib.h> # include <string.h> # include <stdio.h> # include <fstream.h> # define lexsize 30 char lit,lex[lexsize],syn; int cl,i,j,k,l; int pr; FILE *fr,*fw; void getlit(); void scan(); int main(int argc, char* argv[]) { for (i=0;i<lexsize;i++) lex[i]=' '; fr=fopen("f1.txt","r"); fw=fopen("f2.txt","w"); lit=' '; while(!feof(fr)) { scan(); fprintf(fw,"%c\t%s\n",syn,lex); cout<<syn<<' '<<' '<<' '<<lex<<"\n"; } fclose(fr); fclose(fw); getch(); } void scan() { i=0; pr=0; while((lit==' ') || (lit=='\t') || (lit=='\n') ) getlit(); switch (cl) { case 1 : lex[i++]=lit; getlit(); while (cl<=2) { lex[i++]=lit; getlit(); } lex[i]='\0'; if (i>=12) {syn='E'; goto e;} if ( strcmp("float",lex)==0 ) { syn='f'; pr=1 ; } if ( strcmp("int",lex)==0 ) { syn='i'; pr=1 ; } if ( strcmp("if",lex)==0 ) { syn='f'; pr=1 ; } if ( strcmp("else",lex)==0 ) { syn='e'; pr=1 ; } if (!pr) { syn='I'; } e: break; case 2 : lex[i++]=lit; getlit(); while (cl==2 ) { lex[i++]=lit; getlit(); } if (i>=8) syn='E'; else syn='C'; lex[i]='\0'; break; case 3 : lex[0]=lit; lex[1]='\0'; syn=lit; getlit(); break; case 4: lex[i++]=lit; syn='O'; getlit(); if(lit=='=') { lex[i++]=lit; syn='O'; getlit(); } lex[i]='\0'; break; case 5: lex[i++]=lit; syn='O'; getlit(); if(lit=='=') { lex[i++]=lit; syn='O'; getlit(); } if(lit=='>') { lex[i++]=lit; syn='O'; getlit(); } lex[i]='\0'; break; case 6: lex[i++]=lit; syn=lit; syn='O'; if(lit=='=') { lex[i++]=lit; syn='O'; getlit(); } lex[i]='\0'; break; case 7: lex[i++]=lit; getlit(); if(lit=='&') { lex[i++]=lit; syn='A'; getlit(); } lex[i]='\0'; break; case 8: lex[i++]=lit; getlit(); if(lit=='|') { lex[i++]=lit; syn='M'; getlit(); } lex[i]='\0'; break; default: lex[0]=lit; lex[1]='\0'; syn='E'; getlit(); } } void getlit() { lit=fgetc(fr); cl=10; if( (lit>='a') && (lit<='z') || (lit>='A') && (lit<='Z') ) cl=1; if ( (lit>='0') && (lit<='9') ) cl=2; if ( ( lit=='(' ) || ( lit==')' ) || (lit==';') || (lit=='.') || (lit=='=') ) cl=3; if (lit=='>') cl=4; if (lit=='<') cl=5; if (lit=='=') cl=6; if (lit=='&') cl=7; if (lit=='|') cl=8; } Контрольний приклад : Вихідний файл : float p98 = 90; iff ( (a>0) && (h><0) ||(gi==9) ) i = 100; elssse t = 45; else Результат : f float I p98 O == C 90 ; ; I iff ( ( ( ( I a O > C 0 ) ) A && ( ( I h O > O < C 0 ) ) M || ( ( I gi O == O == C 9 ) ) ) ) I i O == C 100 ; ; I elssse I t O == C 45 ; ; e else Висновок : у даній лаборвторній роботі я навчився діл
Антиботан аватар за замовчуванням

01.01.1970 03:01

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини